package com.zzyl.common.ai;

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.auth.Auth;
import com.baidubce.qianfan.model.chat.ChatResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AIModelInvoker {
    @Autowired
    private AIModelProperties aiModelProperties;

    public String qianfanInvoker(String prompt) {
        ChatResponse response = new Qianfan(Auth.TYPE_OAUTH, aiModelProperties.getAccessKey(), aiModelProperties.getSecretKey())
                .chatCompletion()
                .model(aiModelProperties.getModel()) // 使用model指定预置模型
                .addMessage("user", prompt) // 添加用户消息 (此方法可以调用多次，以实现多轮对话的消息传递)
                .temperature(0.8) // 自定义超参数，默认值是0.8，数值越大，结果越随机
                .topP(1.0)
                .maxOutputTokens(2048)  // 设置最大输出token数
                .responseFormat("json_object")      // 设置输出格式为json
                .execute(); // 发起请求
        return response.getResult();
    }
}
